package com.zhangtai.modules.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class FundsRecordDto {
    @ApiModelProperty(value="姓名")
    private String name;

    /**
     * 记录ID
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    @ApiModelProperty(value="记录ID")
    private Long recordId;
    /**
     * 员工ID
     */
    @ApiModelProperty(value="员工ID")
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid;

    /**
     * 公积金个人缴纳
     */
    @ApiModelProperty(value="公积金个人缴纳")
    private BigDecimal reservedFundsPerson;
    /**
     * 公积金公司缴纳
     */
    @ApiModelProperty(value="公积金公司缴纳")
    private BigDecimal reservedFundsOrg;
    /**
     * 公积金个人缴纳比例
     */
    @ApiModelProperty(value="公积金个人缴纳比例")
    private BigDecimal reservedFundsPersonRate;
    /**
     * 公积金公司缴纳比例
     */
    @ApiModelProperty(value="公积金公司缴纳比例")
    private BigDecimal reservedFundsOrgRate;

    /**
     * 补充公积金个人缴纳
     */
    @ApiModelProperty(value="补充公积金个人缴纳")
    private BigDecimal offerFundsPerson;
    /**
     * 补充公积金公司缴纳
     */
    @ApiModelProperty(value="补充公积金公司缴纳")
    private BigDecimal offerFundsOrg;
    /**
     * 补充公积金个人缴纳比例
     */
    @ApiModelProperty(value="补充公积金个人缴纳比例")
    private BigDecimal offerFundsPersonRate;
    /**
     * 补充公积金公司缴纳比例
     */
    @ApiModelProperty(value="补充公积金公司缴纳比例")
    private BigDecimal offerFundsOrgRate;

    /**
     *
     */
    @ApiModelProperty(value="创建时间")
    private Date createTime;
    /**
     * 状态 0未处理 1核对中 2已完结
     */
    @ApiModelProperty(value="状态 0未处理 1核对中 2已完结")
    private Integer status;
    /**
     * 记录类型  0：增员  1：减员 2：正常
     */
    @ApiModelProperty(value="记录类型  0：增员  1：减员 2：正常")
    private Integer type;
    /**
     *
     */
    @ApiModelProperty(value="删除标识符")
    private Integer isDelete;
    /**
     * 操作时间
     */
    @ApiModelProperty(value="参保时间")
    private Date operateTime;
    /**
     * 操作人工号
     */
    @ApiModelProperty(value="操作人工号")
    private String operateCode;
    /**
     * 操作人姓名
     */
    @ApiModelProperty(value="操作人姓名")
    private String operateName;
    /**
     *
     */
    @ApiModelProperty(value="缴费单位id")
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;

    @ApiModelProperty(value="个人缴费合计")
    private BigDecimal personCostTotal;

    @ApiModelProperty(value="公司缴费合计")
    private BigDecimal orgCostTotal;

    @ApiModelProperty(value="缴纳单位")
    private String unitName;

    @ApiModelProperty(value="缴纳城市")
    private String cityName;
    @ApiModelProperty(value="公积金基数")
    private BigDecimal reservedFundsBase;
    @ApiModelProperty(value="补充公积金基数")
    private BigDecimal offerFundsBase;
}
